void main() {
//
  List carts = [
    {"count": 2, "price": 10.0, "selected": true},
    {"count": 1, "price": 30.0, "selected": false},
    {"count": 5, "price": 20.0, "selected": true},
  ];

  // double totalPrice = 0.0;

  // carts.forEach((item) {
  //   if (item["selected"]) {
  //     totalPrice += item["count"] * item["price"];
  //   }
  // });

  // print(totalPrice);

  // 计算总价
  // 1 拿第一项和第二项作为pre和item
  // 2. 拿上一次的返回值作为pre
  double total = carts.reduce((pre, item) {
    if (pre is double) {
      return pre + item['price'] * item['count'];
    } else {
      return pre['price'] * pre['count'] + item['price'] * item['count'];
    }
  });

  print(total);
}
